Стек
Стек представља колекцију података у коју се подаци додају по LIFO (енгл. last-in-first out) принципу - елемент се може додати само на врх и скинути само са врха стека.
У језику C++ стек се реализује класом stack<T>
где
T
представља тип елемената на стеку. За њено коришћење
потребно је укључити заглавље <stack>
. Подржане су
следеће методе (све сложености O(1)):
push
- поставља дати елемент на врх стекаpop
- скида елемент са врха стека (под претпоставком да стек није празан – ако је стек празан, понашање је недефинисано и може доћи до насилног прекида рада програма). Нагласимо да је ова метода типаvoid
и да не враћа уклоњени елемент.top
- очитава елемент на врху стека (под претпоставком да стек није празан)empty
- проверава да ли је стек празанsize
- враћа број елемената на стеку.
Ако се на стеку чувају уређени парови или n-торке, тада се уместо
методе push
, може користити метода emplace
,
којој се само редом наводе елементи пара тј. n-торке (није потребно
посебно позивати функцију за креирање пара тј. n-торке, што је неопходно
када се користи push
).
Стек у језику C++ је заправо само адаптер око неке колекције података (подразумевано вектора) који корисника тера да поштује правила приступа стеку и спречава да направи операцију која над стеком није допуштена (попут приступа неком елементу испод врха).
Стек
Стек представља колекцију података у коју се подаци додају по LIFO (енгл. last-in-first out) принципу - елемент се може додати само на врх и скинути само са врха стека.